package fr.upmf.ic2a.sharedata.provider;

import java.io.IOException;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import com.example.ProjetAndroid.R;
import fr.upmf.ic2a.sharedata.activity.AccueilUserActivity;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

@SuppressLint("CommitPrefEdits")
public class MainActivity extends Activity implements OnClickListener {

	private Button loginButton;
	public static final String PREFS_NAME = "DataSharePreferences";

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		SharedPreferences preferences = PreferenceManager
				.getDefaultSharedPreferences(this);
		preferences.edit().clear().commit();
		// on verifie les preferences
		String adresseMail = preferences.getString("login", "");
		String mdp = preferences.getString("password", "");

		if (adresseMail.equals("") && mdp.equals("")) {
			//Intent intent = new Intent(MainActivity.this, MainActivity.class);
			setContentView(R.layout.activity_main);
			// on recupere le bouton de connection
			loginButton = (Button) findViewById(R.id.button2);
			// on ajoute un evenement
			loginButton.setOnClickListener(this);
			
		} else {
			Intent intent = new Intent(MainActivity.this, AccueilUserActivity.class);
			startActivity(intent);
		}
	}

	public void onClick(View v) {

		if (v.getId() == R.id.button2) {
			// recuperation du login
			final EditText mail = (EditText) findViewById(R.id.editText1);
			String mailUser = mail.getText().toString();

			// recuperation du mot de passe
			final EditText password = (EditText) findViewById(R.id.editText2);
			String mdpUser = password.getText().toString();

			boolean valideForm = true;

			// validation du formulaire
			if (mail.length() == 0) {
				Toast.makeText(this, "Email requis", Toast.LENGTH_SHORT).show();
				valideForm = false;
			}
			if (password.length() == 0) {
				Toast.makeText(this, "Mot de passe requis", Toast.LENGTH_SHORT)
						.show();
				valideForm = false;
			}

			// si tous les champs sont remplis
			if (valideForm) {
			
				// On exécute la requête tout en récupérant la réponse
				//try {
					// On créé un client http
					/*HttpClient httpclient = new DefaultHttpClient();
					// On créé notre entête
					HttpPost httppost = new HttpPost(
							"http://12.0.2.2/Serveur_M2WIC_LACROIX_PIZANT/connexionUser?mailUser="
									+ mailUser + "password=" + mdpUser);
					HttpResponse response = httpclient.execute(httppost);
					
					String idUser = response.toString();
					
					if(idUser == null){
						System.out.println("Identifiants incorrects");
					}else{*/
						SharedPreferences preferences = PreferenceManager
								.getDefaultSharedPreferences(this);
						SharedPreferences.Editor prefsEditor = preferences.edit();
						prefsEditor.putString("login", mailUser);
						prefsEditor.putString("password", mdpUser);
						prefsEditor
								.putString("serveur",
										"http://10.0.2.2/Serveur_M2WIC_LACROIX_PIZANT/");
						prefsEditor.putString("delaiSynch", "30");
						//prefsEditor.putString("idUser", idUser);
						prefsEditor.commit();

						Intent intent = new Intent(MainActivity.this,
								AccueilUserActivity.class);
						startActivity(intent);
					/*}
				} catch (ClientProtocolException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}*/

			}
		}
	}

	/*
	 * a lire en entier :
	 * http://developer.android.com/guide/topics/providers/content
	 * -provider-creating.html sample code a telecharger :
	 * http://developer.android.com/training/notepad/index.html
	 * 
	 * Tables de notre base de données : send_share(_ID, id_file, sync_status
	 * |-> {SYNC, TO_SEND, TO_DELETE}
	 * 		0		1		2
	 *  received_share(_ID, id_file, from_id,
	 * (date?))
	 * 
	 * user_share(id_share, id_user) | |-> Contact |-> _ID du send_share
	 * file(_ID, type_mime, url_systeme)
	 * 
	 * Preferences : url server
	 * 
	 * Authority : fr.upmf.ic2a.sharedata.provider
	 * 
	 * Quel schema d'URI ? content://fr.upmf.ic2a.sharedata.provider/contacts :
	 * designe l'ensemble des contacts de notre application sharedata
	 * 
	 * content://fr.upmf.ic2a.sharedata.provider/contacts/# : designe le contact
	 * particulier numéro #
	 * 
	 * content://fr.upmf.ic2a.sharedata.provider/send : designe l'ensemble des
	 * partages envoyés de notre application sharedata
	 * 
	 * content://fr.upmf.ic2a.sharedata.provider/send/# : designe le partage
	 * envoyé particulier numéro #
	 * 
	 * content://fr.upmf.ic2a.sharedata.provider/send/#/contacts : designe
	 * l'ensemble des contacts définit dans le partage numéro #
	 * 
	 * content://fr.upmf.ic2a.sharedata.provider/received : designe l'ensemble
	 * des partages reçus de notre application sharedata
	 * 
	 * content://fr.upmf.ic2a.sharedata.provider/received/# : designe le partage
	 * reçu particulier numéro #
	 * 
	 * content://fr.upmf.ic2a.sharedata.provider/file : designe l'ensemble des
	 * fichiers de notre application sharedata
	 * 
	 * content://fr.upmf.ic2a.sharedata.provider/file/# : designe le fichier
	 * particulier numéro #
	 * 
	 * saving data in sql databases :
	 * https://developer.android.com/trainiang/basics
	 * /data-storage/databases.html
	 * 
	 * voir la class static sharadatacontract : le provider ne devra jamais
	 * appeler de chaine de caractères, tout devra etre definit dans le
	 * sharedatacontract
	 * 
	 * prendre le notepad pour faire notre base de donnée
	 */

}
